A random binary signal generator allows a smart card, for example, during a terminal authentication procedure, to send a random binary sequence comprising 16 or 32 bits, for example. The card and terminal apply a secret key authentication function to the sequence. Thereafter, the terminal transmits the obtained result to the card, and the card compares its computed result with the one received from the terminal. If both results match, the terminal is presumed to be authentic and the card accepts the requested transaction.
Random generators are known in the art, and are implemented as state machines having a finite number of internal states. Such state machines comprise, for example, shift registers of which certain bits are fed-back through an XOR gate as an input to the machine. Starting from an initial internal state, the state machine is enabled by a clock signal, and a random bit is extracted from the state machine at each clock pulse.
A drawback of such state machines, however, is that they generate deterministic binary sequences that are highly repetitive, as well as an output statistical bias influencing the distribution of logic ones and logic zeros. To overcome this drawback, there is a need for state machines having a large number of internal states (ideally, the machine would have an infinite number of internal states), but this approach opposes the greater simplicity, lower cost and lower consumption desired for random signal generators.
A random signal generator can also be implemented by an electronic noise generator, such as the noise generated by an avalanche-connected diode or a biased diode, or also the thermal noise in a resistor. However, these noise sources are of very small amplitude. It is necessary to use a high gain amplifier with at least a 60 dB gain. This implies using power-consuming bipolar transistors. However, the presence of such transistors is undesired in many integrated circuits, in particular, integrated circuits used in smart cards.